#include <iostream>
#include <memory>
#include "MessageRoute.hpp"
#include "UdpServer.hpp"
#include "InetAddr.hpp"

using namespace std;

void Usage(string proc)
{
    cout << "Usage:\n\t" << "please input: " << proc << " local_port" << endl;
}

int main(int argc, char* argv[])
{
    if(argc != 2)
    {
        Usage(argv[0]);
        exit(USAGE_ERROR);
    }
    // 定义消息转发模块
    MessageRoute route;
    // 网络部分
    uint16_t port = stoi(argv[1]);
    unique_ptr<UdpServer> usvr = make_unique<UdpServer>(port,
        bind(&MessageRoute::Route, &route, placeholders::_1, placeholders::_2, placeholders::_3, placeholders::_4));
    usvr->InitServer();
    usvr->Start();
    return 0;
}
